﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace GestionRecaudos
{
    public partial class FrmReimprimirTickets : Form
    {
        string nombreImpresora = string.Empty;

        public FrmReimprimirTickets()
        {
            InitializeComponent();
        }

        private void FrmReimprimirTickets_Load(object sender, EventArgs e)
        {
            // TODO: esta línea de código carga datos en la tabla 'gestionRecaudosDataSet.spRecaudo' Puede moverla o quitarla según sea necesario.
            this.spRecaudoTableAdapter.Fill(this.gestionRecaudosDataSet.spRecaudo);
            // TODO: esta línea de código carga datos en la tabla 'gestionRecaudosDataSet.spCartulinaDevoluciones' Puede moverla o quitarla según sea necesario.
            this.spCartulinaDevolucionesTableAdapter.Fill(this.gestionRecaudosDataSet.spCartulinaDevoluciones);
            
            //--- Cargo los Parametros
            nombreImpresora = Utils.get().getValorParametro("NombreImpresora");
            
        }

        private void reimprimirRecaudoButton_Click(object sender, EventArgs e)
        {
            int temp = 0;

            //--- Valido toda la informacion
            if (this.codRecaudoBuscadorAWIL.AWIL_Texto.Trim().Equals(string.Empty) || !this.codRecaudoBuscadorAWIL.AWIL_ValorCorrecto)
            {
                MessageBox.Show("Debe seleccionar un Recaudo Valido.");
                this.codRecaudoBuscadorAWIL.Focus();
                return;
            }
            if (!int.TryParse(this.codRecaudoBuscadorAWIL.AWIL_Texto.Trim(), out temp))
            {
                MessageBox.Show("El Recaudo seleccionado no es valido.");
                this.codRecaudoBuscadorAWIL.Focus();
                return;
            }
            if (!ImprimirTickets.get().impresoraExiste(this.nombreImpresora))
            {
                MessageBox.Show("La impresora \"" + this.nombreImpresora + "\" NO Existe. Verifique!");
                return;
            }

            try
            {
                //---  Imprimo el Ticket
                string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings[Utils.get().getValorParametro("SeccionAppConfigGestionRecaudosConnectionString")].ConnectionString;
                DataTable table = new DataTable();
                table.TableName = this.tittle.Text;
                using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connectionString))
                {
                    conn.Open();
                    System.Data.SqlClient.SqlCommand command = conn.CreateCommand();
                    command.CommandType = CommandType.StoredProcedure;
                    command.CommandText = "[spRecaudo]";
                    command.Parameters.Add(new System.Data.SqlClient.SqlParameter("@OP", "RetornarInformacionTicketRecaudo"));
                    command.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ParamAuxiliar", this.MotivoRecaudoTextBox.Text.Trim()));
                    command.Parameters.Add(new System.Data.SqlClient.SqlParameter("@CodRecaudo", this.codRecaudoBuscadorAWIL.AWIL_Texto.Trim()));
                    table.Load(command.ExecuteReader());
                    conn.Close();
                }

                if (!table.Rows.Count.Equals(0))
                {
                    //--- Imprimir Copia
                    if (!ImprimirTickets.get().imprimirRecaudos(table, "=== COPIA ==="))
                    {
                        return;
                    }
                }
                Utils.get().blanquearCampos(this);
            }
            catch (Exception ex)
            {
                MessageException.show(ex);
                return;
            }
        }

        private void reimprimirDevolucionesbutton_Click(object sender, EventArgs e)
        {
            int temp = 0;

            //--- Valido toda la informacion
            if (this.codDevolucionBuscadorAWIL.AWIL_Texto.Trim().Equals(string.Empty) || !this.codDevolucionBuscadorAWIL.AWIL_ValorCorrecto)
            {
                MessageBox.Show("Debe seleccionar una Devolucion Valida.");
                this.codDevolucionBuscadorAWIL.Focus();
                return;
            }
            if (!int.TryParse(this.codDevolucionBuscadorAWIL.AWIL_Texto.Trim(), out temp))
            {
                MessageBox.Show("La devolucion seleccionada no es valido.");
                this.codDevolucionBuscadorAWIL.Focus();
                return;
            }
            if (!ImprimirTickets.get().impresoraExiste(this.nombreImpresora))
            {
                MessageBox.Show("La impresora \"" + this.nombreImpresora + "\" NO Existe. Verifique!");
                return;
            }

            try
            {
                //---  Imprimo el Ticket
                string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings[Utils.get().getValorParametro("SeccionAppConfigGestionRecaudosConnectionString")].ConnectionString;
                DataTable table = new DataTable();
                table.TableName = this.tittle.Text;
                using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connectionString))
                {
                    conn.Open();
                    System.Data.SqlClient.SqlCommand command = conn.CreateCommand();
                    command.CommandType = CommandType.StoredProcedure;
                    command.CommandText = "[spCartulinaDevoluciones]";
                    command.Parameters.Add(new System.Data.SqlClient.SqlParameter("@OP", "RetornarInformacionTicketDevolucion"));
                    command.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ParamAuxiliar", this.motivoDevolucionTextBox.Text.Trim()));
                    command.Parameters.Add(new System.Data.SqlClient.SqlParameter("@CodCartulinaDevolucion", this.codDevolucionBuscadorAWIL.AWIL_Texto.Trim()));
                    table.Load(command.ExecuteReader());
                    conn.Close();
                }

                if (!table.Rows.Count.Equals(0))
                {
                    //--- Imprimir Copia
                    if (!ImprimirTickets.get().imprimirDevoluciones(table, "=== COPIA ==="))
                    {
                        return;
                    }
                }
                Utils.get().blanquearCampos(this);
            }
            catch (Exception ex)
            {
                MessageException.show(ex);
                return;
            }
        }

    }
}
